function Game(el){                  //创建游戏页面布局
    //保存最大盒模型对象
    this.el=document.querySelector(el)
    //调用map.js里的Map构造函数
    this.map=new Map(this.el)  //调用同时将最大盒模型参数传递
    this.map.create()          //d调用Map构造函数中的方法--名字create的方法

    this.food=new Food(this.el)
    this.food.create()

    this.snake=new Snake(this.el)
    this.snake.create()
}
Game.prototype.start=function(){    //创建 游戏开始时  移动蛇 
    let t=setInterval(()=>{        //让蛇自动持续走起来
        this.snake.move()

        // 判断蛇吃食物   获取蛇头位置
        let snakeX=this.snake.snakeObj[0].x * 20
        let snakeY=this.snake.snakeObj[0].y * 20
                //Food构造函数中保存 foodx/y 属性 可以直接调用
        if(snakeX==this.food.foodX && snakeY==this.food.foodY){
            let last=this.snake.snakeObj[this.snake.snakeObj.length-1]  //获取最后一个蛇节的数据 追加到后面呢
            this.snake.snakeObj.push({
                x: last.x, 
                y : last.y, 
                color: last.color, 
                ele:null
            })
            this.food.move()
        }
    },150)

    document.addEventListener('keydown',(e)=>{
        e=e || window.event
        console.log(e.keyCode)
        switch(e.keyCode){
            case 38:
                // if(this.snake.direction=='bottom'){
                //     alert('游戏结束')
                //     clearInterval(t)        //优化自己吃自己
                // }
                this.snake.direction='top'     //更改snake的初始数据，this.direction,move每秒调用时会使用this.direction
                break;
            case 40:
                this.snake.direction='bottom'
                break;
            case 37:
                this.snake.direction='left'
                break;
            case 39:
                this.snake.direction='right'
                break;
            default:
                break;
        }
    })
}

Game.prototype.stop=function(){
    clearInterval(t)
}